#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author:zhengxin
@file: 04_Pandas_CSV.py
@time: 2025/1/3  09:53
# @describe: Pandas CSV 文件
"""

"""
CSV（Comma-Separated Values，逗号分隔值，有时也称为字符分隔值，因为分隔字符也可以不是逗号），其文件以纯文本形式存储表格数据（数字和文本）。
CSV 是一种通用的、相对简单的文件格式，被用户、商业和科学广泛应用。

    Pandas 可以很方便的处理 CSV 文件，常用方法有：
    
    方法名称	            功能描述	                            常用参数
    pd.read_csv()	    从 CSV 文件读取数据并加载为 DataFrame	    filepath_or_buffer (路径或文件对象)，sep (分隔符)，header (行标题)，names (自定义列名)，dtype (数据类型)，index_col (索引列)
    DataFrame.to_csv()	将 DataFrame 写入到 CSV 文件	             path_or_buffer (目标路径或文件对象)，sep (分隔符)，index (是否写入索引)，columns (指定列)，header (是否写入列名)，mode (写入模式)
"""
import pandas as pd

df = pd.read_csv('data/nba.csv')
# to_string() 用于返回 DataFrame 类型的数据，如果不使用该函数，则输出结果为数据的前面 5 行和末尾 5 行，中间部分以 ... 代替。
print(df.to_string())
print("--"*40)
print(df)




""" df.to_csv() - 将 DataFrame 写入 CSV 文件 """
# 打印 DataFrame df 的所有列名
print(df.columns)
# 方式一
df.to_csv("data/output_1.csv", index=False, header=True,
          columns=["Name", "Team", "Number", "Position", "Age", "Height", "Weight"])


# 方式二
nme = ["Google", "Runoob", "Taobao", "Wiki"]
st = ["www.google.com", "www.runoob.com", "www.taobao.com", "www.wikipedia.org"]
ag = [90, 40, 80, 98]

# 字典
dict = {"name": nme, "site": st, "age": ag}
df = pd.DataFrame(dict)
df.to_csv('site.csv')
print("--"*40)




""" 
数据处理：
    head( n ) 方法用于读取前面的 n 行，如果不填参数 n ，默认返回 5 行。
    tail( n ) 方法用于读取尾部的 n 行，如果不填参数 n ，默认返回 5 行，空行各个字段的值返回 NaN。
    info() 方法返回表格的一些基本信息：

"""
import pandas as pd

df = pd.read_csv("data/nba.csv")
# 读取前面 5 行
print(df.head())
# 读取前面 10 行
print(df.head(10))
print("--"*40)


# 读取末尾 5 行
print(df.tail())
# 读取末尾 10 行
print(df.tail(10))
print("--"*40)

# info() 方法返回表格的一些基本信息：
print(df.info())
